The present invention relates to migration of data from a source data storage device to a target data storage device in a data processing system.
Data migration techniques are used to move or “migrate” data from one storage device (or logical unit) to another for any of a variety of purposes, such as upgrading storage hardware or information lifecycle management. Generally, migration involves synchronizing the target device to the source device, i.e., achieving an operating state in which the target device stores the same data as the source device, and then switching operation so that subsequent accesses of the data are directed to the target device instead of the source device. Once the switching is successfully accomplished, the source device can be taken out of service or put to some other use.
Non-disruptive migration is performed while there is ongoing application-level access to the data stored on the source storage device. In non-disruptive migration, there are two parts to achieving synchronization—existing data on the source device is copied to the target device, and ongoing application writes of new data are “cloned”, i.e., sent to both the source and target devices. Non-disruptive migration also requires a non-disruptive mechanism for switching operation to the target device. Example descriptions of non-disruptive migration can be found in the following US patents, whose entire contents are incorporated by reference herein:                1. U.S. Pat. No. 7,904,681 Methods and systems for migrating data with minimal disruption        2. U.S. Pat. No. 7,809,912 Methods and systems for managing I/O requests to minimize disruption required for data migration        3. U.S. Pat. No. 7,770,053 Systems and methods for maintaining data integrity during a migration        
Clustering is a technique used in computer systems to provide certain desirable functionality and characteristics from the perspective of external users. Advantages include increased performance and availability over non-clustered systems. Two general types of clusters are “failover” and parallel or “active-active” clusters. In a failover cluster, all cluster nodes may be aware of a given storage device accessible in the cluster, but in general a given storage device is accessed by only one node during operation. In the event of node failure, a failover mechanism causes ownership of the storage device to be transferred to a new node that has assumed responsibility for the workload of the failed node. Due to the single-node access, there is no need for synchronizing accesses among the hosts. In active-active clusters, storage devices may be actively accessed from all nodes in the cluster, and the operating software (e.g., application software) of the nodes is responsible for synchronizing access to shared storage resources.